#pragma once

#include <vector>
#include <gtl/ui/skins/pane.h>
#include <gtl/script/script.h>

namespace gtl
{

namespace skins
{

class skins
	: public container<skins>
{
public:
	skins();
	virtual ~skins();

public:
	bool load(const gtl::tchar* /*path*/);

public:
	virtual unsigned int initialize(gtl::xml& /*pData*/, wnd* /*pParentWnd*/);
	virtual void output(pane* /*pane_ptr*/, const gtl::tchar* action, const gtl::tchar* /*data*/, const gtl::tchar* /*provider*/);
	virtual bitmap* get_image(const gtl::tstr& path);
	virtual font* get_font(const gtl::tstr& name);

public:
	wnd* get_main_wnd();

protected:
	wnd* m_main_wnd;
	gtl::script* m_script;
	std::vector<std::pair<gtl::tstr, bitmap*>> m_bitmaps;
};

} // end of namespace skins

} // end of namespace gtl